package com.itheima.info.manger.dao;

import com.itheima.info.manger.domain.Teacher;

/*
    库管类
        1.核心职责是管理我们的数据仓库-- 数组: 增删改查
        2.这里的所有方法【功能】都是给业务员用
 */
public class TeacherDao {
    //1.定义一个长度为5的数组,作为整个系统的容器
    public static Teacher[] teas=new Teacher[5];


    //库管中的增加教师功能
    public boolean addTeacher(Teacher tea) {
        //先判断有没有空位子可以存
        //2.通过标记位思想来找到当前tea对象在数组中应存入的位置
            //2.1假设数组已经存满了,让index记录-1
        int index=-1;

            //2.2遍历数组
        for (int i = 0; i < teas.length; i++) {
            Teacher teacher =teas[i];
            if(teacher==null){
                index=i;
                break;
            }
        }
       //3.根据index的值来判断本次添加是否成功
        if(index==-1){
            //3.1 -1表示都存满了,没有办法再添加了,返回false
            return false;
        }else{
            //3.2 不是-1表示还有位置可以存,将要添加的学生对象存入对应的索引位置即可
            teas[index]=tea;
            return true;
        }

    }


    //库管中的查看所有教师功能
    public Teacher[] findAllTeachers() {
        return teas;
    }

    //库管中的删除教师信息功能
    public void deleteStudentById(String delId) {
        //1.找到要删除学号对应的教师对象在数组容器中索引的位置
        int index = getIndex(delId);
        //2.用null去覆盖掉该索引位置对应的学生对象
        teas[index]=null;

    }

    //获取所需索引的方法
    private int getIndex(String delId) {
        //标记位思想,先假设要查找的id不存在,让index=-1
        int index=-1;
        //遍历数组容器
        for (int i = 0; i < teas.length; i++) {
            //拿到每一个教师对象
            Teacher tea = teas[i];
            //判断当前教师对象的学号和要查找的id是否相同
            if(tea!=null&&tea.getSid().equals(delId)){
                index=i;
                break;
            }
        }
        return index;
    }


    //库管中修改教师信息的功能
    public void updateTeacherById(String updateId, Teacher newTeacher) {
        //1.通过要修改的学号查找对应学生对象在数组容器中的索引位置
        int index=getIndex(updateId);
        //2.将newStudent去覆盖掉该索引位置的就对象,从而达到修改目的
        teas[index]=newTeacher;

    }
}
